Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

311
Vistas
Analizar csv usando el nodo "csv-parser" JS

Estoy usando la biblioteca 'csv-parser'. Usando el método a continuación, puedo obtener los datos almacenados en la matriz de cumpleaños que se muestra en la consola:

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { console.log(birthdays) });

pero cuando inicio sesión fuera de .on('end') como se muestra a continuación, la consola muestra la matriz de cumpleaños como vacía:

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { }); console.log(birthdays)

¿Porqué es eso? y como puedo solucionarlo? Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

¿Porqué es eso?

Es porque createReadStream funciona de forma asíncrona y cuando console.log(birthdays); afuera, la ejecución del código lee el registro antes de que createReadStream haya terminado de procesarse

¿Cómo puedo resolverlo?

Hiciste bien en ponerlo dentro de .on("end")

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { console.log(birthdays); // further processing with birthdays });
about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Podrías hacer algo como esto?

 const csv = require("csv-parser"); const fs = require("fs"); const path = require("path"); const { promisify } = require("util"); const readFile = promisify(fs.readFile); const birthdays = []; const filePath = path.join(__dirname, "data", "groupes.csv"); readFile(filePath, "utf8").then((data) => { csv(data, { separator: ",", }) .on("data", (row) => { birthdays.push(row); }) .on("end", () => { console.log(birthdays); }); });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda